﻿using HiSportApplet.Core.Enum;
using HiSportApplet.Core.Util;
using System.ComponentModel;


namespace HiSportApplet.Application.Service.Order.OrderSiteManagement.Dtos
{
    /// <summary>
    /// 获取订单分页 Dto
    /// </summary>
    public class OrderSitePageInputDto : BasePageInput, IIsContainParam
    {
        /// <summary>
        /// 系统会员ID
        /// </summary>      
        public long  SysMemberId { get; set; }

        /// <summary>
        /// 订单来源-可为空
        /// </summary>
        public OrderSourceEnum? OrderSource { get; set; }

        /// <summary>
        /// 0/空:全部；
        /// 1-待付款；
        /// 2-待使用；
        /// 3-使用中；
        /// 4-已完成
        /// 5-已取消
        /// </summary>
        public SearchTypeEnum? SearchType { get; set; }

        /// <summary>
        /// 是否查询场馆信息
        /// </summary>
        public bool IsSearchVenues { get; set; }

        /// <summary>
        /// 是否查询场馆图片
        /// </summary>
        public bool IsSearchImage { get; set; }

        /// <summary>
        /// 是否查询明细
        /// </summary>
        public bool IsSearchDtl { get; set; }
    }

    /// <summary>
    /// 查询订单类型
    /// </summary>
    [Description("订单查询类型")]
    public enum SearchTypeEnum 
    {
        /// <summary>
        /// 0-全部
        /// </summary>

        [Description("0:全部")]
        All =0,

        /// <summary>
        /// 1-待付款
        /// </summary>
        [Description("1:待付款")]
        Unpaid = 1,

        /// <summary>
        /// 2-待使用
        /// </summary>
        [Description("2:待使用")]
        NotUsed  = 2,

        /// <summary>
        /// 3-使用中
        /// </summary>
        [Description("3:使用中")]
        Using = 3,

        /// <summary>
        /// 4-已完成
        /// </summary>
        [Description("4:已完成")]
        Completed = 4,


        /// <summary>
        /// 5-已取消
        /// </summary>
       [Description("5-已取消")]
        Cancelled = 5

    }


    /// <summary>
    /// 查询需要包含的项-接口
    /// </summary>
    public class IsContainParam: IIsContainParam
    {
        /// <summary>
        /// 是否查询场馆信息
        /// </summary>
        public bool IsSearchVenues { get; set; }

        /// <summary>
        /// 是否查询场馆图片
        /// </summary>
        public bool IsSearchImage { get; set; }

        /// <summary>
        /// 是否查询明细
        /// </summary>
        public bool IsSearchDtl { get; set; }
    }
    /// <summary>
    /// 查询需要包含的项-接口
    /// </summary>
    public interface IIsContainParam
    {
        /// <summary>
        /// 是否查询场馆信息
        /// </summary>
        public bool IsSearchVenues { get; set; }

        /// <summary>
        /// 是否查询场馆图片
        /// </summary>
        public bool IsSearchImage { get; set; }

        /// <summary>
        /// 是否查询明细
        /// </summary>
        public bool IsSearchDtl { get; set; }
    }
}
